package com.archgeek.java.udp;

import org.junit.Test;

import java.net.*;

/**
 * @author pizhihui
 * @date 2023-03-03
 */
public class UdpCoreApiTest {


    @Test
    public void datagramApiTest() {
        try {

            // 不指定端口和 ip,如果是发送的话,就用本地的ip 和端口了
            DatagramSocket ds1 = new DatagramSocket();


            // 这里的端口是接收的端口
            DatagramSocket ds2 = new DatagramSocket(2306);

            // 监听其他 ip 和 port 的
            DatagramSocket ds3 = new DatagramSocket(2307, InetAddress.getLocalHost());

            // 接收和发送数据
            // receive(DatagramPacket d)
            // send(DatagramPacket d)

            // 设置项目
            // setSoTimeout(int timeout) 毫秒
            // close

            // 接收实体,也是发送实体
            // 前3 个参数指定 buf 的使用区间,后 2 个指定目标机器地址和端口
            // DatagramPacket(byte[] buf, int offset, int length, InetAddress address, int port)

            // SocketAddress  = InetAddress + Port
            // DatagramPacket(byte[] buf, int length, SocketAddress addresss)

            //
            // setData(byte[] buf, int offset, int length)
            // setData(byte[] buf)
            // setLength(int length)
            // getData(),getOffset(),getLength()

            // 发送的地址和端口,接收的时候是系统完成的,不需要自己 set
            // setAddress(InetAddress iddr), setPort(int port)
            // getAddress(), getPort()
            // setSocketAddress(SocketAddress assress)
            // getSocketAddress



        } catch (SocketException e) {
            throw new RuntimeException(e);
        } catch (UnknownHostException e) {
            throw new RuntimeException(e);
        }

    }




}
